package com.caiheng.api.entity.estate;

import com.baomidou.mybatisplus.annotation.*;
import com.caiheng.api.entity.dto.RepairStepDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 报修记录对象 repair_record
 *
 * @author ruoyi
 * @date 2021-08-21
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("estate_repair_record")
public class RepairRecord implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    private Integer propertyId;

    /**
     * 小区id
     */
    private Integer estateId;

    private String estateName;

    /**
     * 上报人id
     */
    private Integer userId;

    private String nickName;

    /**
     * 记录类型 0 - 业主上报  1 - 工单(内部人员上报)
     */
    private Integer recordType;

    /**
     * 拾取方式  0 -  经理派单  1 - 自由抢单
     */
    private Integer pickType;

    /**
     * 工单编号
     */
    private String recordNo;
    /**
     * 业主楼号户号
     */
    private String roomNo;

    private Integer checkType;

    /**
     * 业主手机号
     */
    private String phoneNum;

    /**
     * 添加时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 业主描述
     */
    private String content;

    /**
     * 业主上传图片
     */
    private String imgUrl;

    /**
     * 状态 0 - 待处理  1 - 已抢单 -  2 - 处理结束  3 - 结束完成 已完成
     */
    private Integer state;

    /**
     *  评价内容
     */
    private String appraiseContent;

    /**
     *  评价时间
     */
    private Date appraiseTime;
    /**
     *  评价星级
     */
    private Integer rateStar;

    /**
     *  物业经理id
     */
    private Integer esManagerWxUserId;

    /**
     *  物业经理昵称
     */
    private String esManagerNickName;
    /**
     *  物业经理说明
     */
    private String esManagerResult;
    /**
     *  直排时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date esHandleTime;

    /**
     *  维修工id
     */
    private Integer opWorkerId;
    /**
     *  维修工手机号
     */
    private String opWorkerPhone;
    /**
     * 上门修理人员
     */
    private String opUserName;

    /**
     *  维修工的微信id
     */
    private Integer opWxUserId;

    /**
     * 维修工昵称
     */
    private String opWxNickName;


    /**
     * 修理状态 0  - 未处理 1 - 处理中  2 - 已完成
     */
    private Integer opState;

    /**
     * 修理反馈
     */
    private String opResult;

    /**
     *  维修人员的处理结束时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date opTime;

    /**
     * 修理上传图片
     */
    private String opImgUrl;


    /**
     * 删除状态 0 - 未删除  1 - 已删除
     */
    private Integer isDel;


    /**
     *  删除时间
     */
    private Date delTime;


    /**
     * 修理上传图片
     */
    @TableField(exist = false)
    private List<String> imgUrlList;

    /**
     * 修理上传图片
     */
    @TableField(exist = false)
    private List<RepairRecordInfo> infos;

    /**
     *  步骤信息
     */
    @TableField(exist = false)
    List<RepairStepDto> stepInfos;

    /**
     * 修理上传图片
     */
    @TableField(exist = false)
    private List<String> opImgUrlList;

    /**
     * 该小区的修理工
     */
    @TableField(exist = false)
    private List<EstateUser> workers;

    /**
     * 该小区的修理工姓名
     */
    @TableField(exist = false)
    private List<String> workerNames;

}
